namespace devtm.Aop.Emit
{
    using System;
    using System.Collections.Generic;    

    [Serializable]
    public abstract class EmitObject
    {


        private Dictionary<object, object> userData;

        public Dictionary<object, object> UserData
        {
            get
            {
                if (this.userData == null)
                {
                    this.userData = new Dictionary<object, object>();
                }
                return this.userData;
            }
        }



        public virtual void Compile(CilWorker gen)
        {
            throw new NotImplementedException("void Compile(CilWorker gen) not implemented in " + GetType().FullName + " type");
        }


    }
}
